#pragma once

#include "ConvertIterador.h"
#include "Puntero.h"

template <class T, class U>
class CastIterador : public ConvertIterador<Puntero<T>, Puntero<U>>
{
public:
	CastIterador(Puntero<Iterador<Puntero<T>>> toCast);
	virtual ~CastIterador();

protected:
	const Puntero<U>& Convertir(const Puntero<T>& t) const;

private:
	mutable Puntero<U> m_Actual;
};

#include "CastIterador.cpp"
